﻿//IStorageEntityList.cs
//Copyright (c) 2013 StockSharp LLC, all rights reserved.
//This code module is part of StockSharp library.
//This code is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.
//See the file License.txt for the license details.
//More info on: http://stocksharp.com

namespace StockSharp.Algo.Storages
{
	using Ecng.Collections;

	using StockSharp.BusinessEntities;

	/// <summary>
	/// Интерфейс для представления в виде списка торговых объектов, полученных из внешнего хранилища.
	/// </summary>
	/// <typeparam name="T">Тип торгового объекта (например, <see cref="Security"/> или <see cref="MyTrade"/>).</typeparam>
	public interface IStorageEntityList<T> : INotifyList<T>
	{
		/// <summary>
		/// Загрузить торговый объект по идентификатору.
		/// </summary>
		/// <param name="id">Идентификатор.</param>
		/// <returns>Торговый объект. Если по идентификатору объект не был найден, то будет возвращено null.</returns>
		T ReadById(object id);

		/// <summary>
		/// Сохранить торговый объект.
		/// </summary>
		/// <param name="entity">Торговый объект.</param>
		void Save(T entity);
	}
}